import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:sonora/bloc/base/sj_base_state.dart';
import 'package:sonora/models/sj_block_list_item_data.dart';
import 'package:sonora/models/sj_broad_caster_data.dart';
import 'package:sonora/models/sj_friend_list_item_data.dart';
import 'package:sonora/models/sj_good_search_item_data.dart';
import 'package:sonora/models/sj_login_response_data.dart';
import 'package:sonora/models/sj_works_model.dart';

part 'sj_mine_state.freezed.dart';

@freezed
class SjMineState extends SjBaseState with _$SjMineState {
  const factory SjMineState({
    @Default(false) bool initial,
    @Default(false) bool loading,
    @Default(null) String? errorMsg,
    @Default(null) String? successMsg,
    @Default(null) SjUserDetailData? userInfoData,
    @Default(null) List<SjBlockListItemData>? blokList,
    @Default(null) List<SjFriendListItemData>? friendList,
    @Default(null) List<SjGoodSearchItemData>? goodSearch,
    @Default(null) String? headerImage,
    @Default(null) String? middleThumbUrl,
    @Default(null) String? nickName,
    @Default(null) String? birthday,
    @Default(null) String? country,
    @Default(false) bool updateSuccess,
    @Default(false) bool isEdit,
    @Default(false) bool saveUserInfoSuccess,
    @Default(null) String? saveUserInfoMsg,
    @Default(null) List<SjWorksModel>? worksList,
  }) = _SjMineState;
}